package com.alibaba.citrus.cr.mn.order.center.facade.adapter.dataobject.request;

import com.alibaba.fastjson.annotation.JSONType;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @Description
 * @Author zhangjian
 * @Date 2024/1/22 20:47
 */
@Data
@JSONType(serialzeFeatures = SerializerFeature.WriteMapNullValue)
public class FulfillmentOrderSearchOrderRequest implements Serializable {

    /**
     * 来源系统编码
     */
    private String fromSys;

    /**
     * 业态编码
     */
    private String businessType;

    /**
     * 业务单元编码
     */
    private String businessUnitCode;

    /**
     * 分页开始页码
     */
    private Integer page = 1;

    /**
     * 分页每页条数
     */
    private Integer size = 10;
    /**
     * 履约单方向类型 （1.正向，2.逆向）
     */
    private Integer fulfillmentDirectionType;

    /**
     * 业务单据类型列表
     */
    private List<String> refOrderTypeList;

    /**
     * 来源单号
     */
    private String sourceOrderNo;

    /**
     * 履约类型
     */
    private Integer fulfillmentType;


    /**
     * 发货仓编码列表（逻辑仓）
     */
    private List<String> logicShippingWarehouseCodeList;

    /**
     * 收货仓编码列表
     */
    private List<String> logicReceivingWarehouseCodeList;

    /**
     * 售达方编码
     */
    private String soldToPartyCode;
    /**
     * 送达方编码
     */
    private String shipToPartyCode;

    /**
     * 单据状态
     */
    private Integer mainStatus;

    /**
     * 期望交货日期（开始日期）
     */
    private String startExpectedDeliveryTime;

    /**
     * 期望交货日期（结束日期）
     */
    private String endExpectedDeliveryTime;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 创建时间（开始时间）
     */
    private String startCreateTime;

    /**
     * 创建时间（结束时间）
     */
    private String endCreateTime;

    /**
     * 业务单据主单号
     */
    private String refOrderNo;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 履约明细状态
     */
    private Integer detailStatus;

    /**
     * 是否关闭
     */
    private Integer close;
}
